package crud;

import org.hibernate.Session;
import org.junit.Test;

import Domain.News;
import utils.HibernateUtils;

/**
 * @author DGW-PC
 * @data   2018年9月18日下午3:41:09
 * <a href="https://www.cnblogs.com/dgwblog/">我的博客</a>
 * 增加操作：
 */
public class TestInsert {

	/**
	 *  1.save（）方法
	 *  1).将临时对象转为持久对象
	 *  2).为对象分配id
	 *  3).flush缓存时发送一条Insert语句
	 *  4).持久化的id是不能被修改的
	 */
	@Test
	public void testSave() {
		Session session = HibernateUtils.getSession();
		try {
			// 开启事物
			session.beginTransaction();
			// 操作
			session.save(new News("9.18", "chind"));
			// 事务提交
			session.getTransaction().commit();
		} catch (Exception e) {
			e.printStackTrace();
			// 事物回滚
			session.getTransaction().rollback();
		}
		HibernateUtils.closeSession();
	}

	/**
	 * 1.persist()方法
	 * 1).persist之前如果对象已经有id了，不会执行inset
	 *  将会抛出异常
	 */
	@Test
	public void testPersist() {
		Session session = HibernateUtils.getSession();
		try {
			session.beginTransaction();
			
			session.persist(new News("腾讯收购360", "中新网"));
			
			session.getTransaction().commit();
		} catch (Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}
	}
}
